這篇主要來介紹 container 當中關於資源控管的幾個重要名詞:
在 Linux kernel 中,namespace 可以隔離各種系統資源,它使在同一個主機中能擁有不同系統資源的 container。
隔離 process id。它讓 container 只能看到自己內部的 process,無法知道主機或其他 container 的 process。其中,process id 從 1 開始。
為每個 container 提供網路堆疊的單獨視圖,包括專屬的網路介面、路由表和防火牆規則。
值得注意的是,當網路命名空間被釋放時(即,當命名空間中的最後一個 process 終止),其實體網絡設備被移回初始網路命名空間。
隔離文件系統的掛載點。在每個容器中都有屬於自己的文件系統,其掛載資源只顯示在本身的 container 裏頭。
每個掛載命名空間實例都會看到不同的單一目錄層次結構。
用來控管各個 container 之間的通訊。
在此可以設置不同角色對於 container 內部資源控制的許可權。
允許每個容器擁有自己的 hostname 和 domain name,獨立於其他容器和主機。
我們也可以自檢建立一個 namespace
在 Lninux kernel 中用於限制、考慮和隔離 process 集合的資源使用方式(CPU、記憶體、磁碟 I/O、網路等)
cgroups 可以提供以下功能:
union filesystem 可以支援對檔案系統的修改,也可以將不同目錄掛載到同一個虛擬檔案系統下,提高儲存效率。